softethervpn5: add new package softethervpn5
authorAndy Walsh <[email protected]>
Wed, 25 Jul 2018 20:40:59 +0000 (22:40 +0200)
committerAndy Walsh <[email protected]>
Tue, 8 Jan 2019 16:56:50 +0000 (17:56 +0100)
Signed-off-by: Andy Walsh <[email protected]>
net/softethervpn5/Makefile [new file with mode: 0644]
net/softethervpn5/files/dummy [new file with mode: 0644]
net/softethervpn5/files/launcher.sh [new file with mode: 0644]
net/softethervpn5/files/vpnbridge.init [new file with mode: 0644]
net/softethervpn5/files/vpnclient.init [new file with mode: 0644]
net/softethervpn5/files/vpnserver.init [new file with mode: 0644]
net/softethervpn5/patches/100-increase-cfg-save-intervall.patch [new file with mode: 0644]
net/softethervpn5/patches/101-add-config-write-syslog.patch [new file with mode: 0644]

diff --git a/net/softethervpn5/Makefile b/net/softethervpn5/Makefile
new file mode 100644 (file)
index 0000000..e6b5892
--- /dev/null
@@ -0,0 +1,171 @@
+# Based partially on the versions of el1n and Federico Di Marco
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=softethervpn5
+PKG_VERSION:=5.01.9667
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=Andy Walsh <[email protected]>
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=COPYING
+
+PKG_SOURCE:=softether-vpn-src-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/SoftEtherVPN/SoftEtherVPN/releases/download/$(PKG_VERSION)
+PKG_HASH:=c99142c5e55fae055955332964c56d29aba10bec9764ab961aebabf6c3ee1462
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)-$(PKG_VERSION)
+
+HOST_BUILD_DEPENDS:=ncurses/host readline/host
+PKG_BUILD_DEPENDS:=softethervpn5/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/nls.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
+
+define Package/softethervpn5/Default
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=VPN
+  TITLE:=softethervpn5 v$(PKG_VERSION)
+  URL:=http://www.softether.org/
+endef
+
+define Package/softethervpn5/Default/description
+  SoftEther VPN supports SSL-VPN, OpenVPN, L2TP, EtherIP, L2TPv3 and IPsec as a single VPN software.
+  SoftEther VPN is not only an alternative VPN server to existing VPN products (OpenVPN, IPsec and MS-SSTP),
+  but has also original strong SSL-VPN protocol to penetrate any kinds of firewalls.
+  Guide: https://wordpress.tirlins.com/2015/03/setting-up-softether-vpn-on-openwrt/
+endef
+
+define Package/softethervpn5-libs
+  $(call Package/softethervpn5/Default)
+  DEPENDS:=+libpthread +librt +libreadline +libopenssl +libncurses +kmod-tun +zlib $(ICONV_DEPENDS)
+  TITLE+= libs
+  HIDDEN:=1
+endef
+
+define Package/softethervpn5-server
+  $(call Package/softethervpn5/Default)
+  TITLE+= server
+  DEPENDS:= +softethervpn5-libs
+endef
+define Package/softethervpn5-server/description
+  $(call Package/softethervpn5/Default/description)
+
+  Provides the vpnserver (daemon).
+endef
+
+define Package/softethervpn5-bridge
+  $(call Package/softethervpn5/Default)
+  TITLE+= bridge
+  DEPENDS:= +softethervpn5-libs  
+endef
+define Package/softethervpn5-bridge/description
+  $(call Package/softethervpn5/Default/description)
+
+  Provides the vpnbridge (daemon).
+endef
+
+define Package/softethervpn5-client
+  $(call Package/softethervpn5/Default)
+  TITLE+= client
+  DEPENDS:= +softethervpn5-libs  
+endef
+define Package/softethervpn5-client/description
+  $(call Package/softethervpn5/Default/description)
+
+  Provides the vpnclient.
+endef
+
+export USE_MUSL=YES
+# BUG: outdated host/include/elf.h
+HOST_CFLAGS += $(FPIC) -DAT_HWCAP2=26
+TARGET_CFLAGS += $(FPIC)
+
+# static build for host (hamcorebuilder), avoid -fpic on ncurses/host and shared libs can't be found on host
+define Host/Prepare
+       $(Host/Prepare/Default)
+       $(SED) 's,SHARED,STATIC,g' $(HOST_BUILD_DIR)/src/Mayaqua/CMakeLists.txt
+       $(SED) 's,SHARED,STATIC,g' $(HOST_BUILD_DIR)/src/Cedar/CMakeLists.txt
+endef
+
+define Host/Compile
+       $(call Host/Compile/Default,hamcorebuilder)
+endef
+
+define Host/Install
+       $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin/
+       $(INSTALL_BIN) $(HOST_BUILD_DIR)/tmp/hamcorebuilder $(STAGING_DIR_HOSTPKG)/bin/
+endef
+
+define Build/Compile
+       $(call Build/Compile/Default,vpnserver vpnbridge vpnclient vpncmd hamcore-archive-build)
+endef
+
+define Build/Install
+endef
+
+define Package/softethervpn5-libs/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_BUILD_DIR)/build/libcedar.so $(1)/usr/lib/
+       $(CP) $(PKG_BUILD_DIR)/build/libmayaqua.so $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/libexec/softethervpn
+       $(CP) $(PKG_BUILD_DIR)/build/hamcore.se2 $(1)/usr/libexec/softethervpn/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpncmd $(1)/usr/libexec/softethervpn/
+       $(INSTALL_BIN) files/launcher.sh $(1)/usr/libexec/softethervpn/
+       $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/lang.config
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(LN) ../../usr/libexec/softethervpn/launcher.sh $(1)/usr/bin/vpncmd
+endef
+
+define Package/softethervpn5-server/install
+       $(INSTALL_DIR) $(1)/usr/libexec/softethervpn
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpnserver $(1)/usr/libexec/softethervpn/
+       $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_server.config
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) files/vpnserver.init $(1)/etc/init.d/softethervpnserver
+endef
+
+define Package/softethervpn5-bridge/install
+       $(INSTALL_DIR) $(1)/usr/libexec/softethervpn
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpnbridge $(1)/usr/libexec/softethervpn/
+       $(INSTALL_BIN) files/launcher.sh $(1)/usr/libexec/softethervpn/
+       $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_bridge.config
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) files/vpnbridge.init $(1)/etc/init.d/softethervpnbridge
+endef
+
+define Package/softethervpn5-client/install
+       $(INSTALL_DIR) $(1)/usr/libexec/softethervpn
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpnclient $(1)/usr/libexec/softethervpn/
+       $(INSTALL_BIN) files/launcher.sh $(1)/usr/libexec/softethervpn/
+       $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_client.config
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) files/vpnclient.init $(1)/etc/init.d/softethervpnclient
+endef
+
+define Package/softethervpn5-server/conffiles
+/usr/libexec/softethervpn/vpn_server.config
+/usr/libexec/softethervpn/lang.config
+endef
+
+define Package/softethervpn5-bridge/conffiles
+/usr/libexec/softethervpn/vpn_bridge.config
+/usr/libexec/softethervpn/lang.config
+endef
+
+define Package/softethervpn5-client/conffiles
+/usr/libexec/softethervpn/vpn_client.config
+/usr/libexec/softethervpn/lang.config
+endef
+
+$(eval $(call HostBuild))
+$(eval $(call BuildPackage,softethervpn5-libs))
+$(eval $(call BuildPackage,softethervpn5-server))
+$(eval $(call BuildPackage,softethervpn5-bridge))
+$(eval $(call BuildPackage,softethervpn5-client))
diff --git a/net/softethervpn5/files/dummy b/net/softethervpn5/files/dummy
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+
diff --git a/net/softethervpn5/files/launcher.sh b/net/softethervpn5/files/launcher.sh
new file mode 100644 (file)
index 0000000..7970792
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec "/usr/libexec/softethervpn/${0##*/}" "$@"
diff --git a/net/softethervpn5/files/vpnbridge.init b/net/softethervpn5/files/vpnbridge.init
new file mode 100644 (file)
index 0000000..1311e65
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh /etc/rc.common
+
+START=90
+USE_PROCD=1
+
+start_service(){
+       logger -t 'softethervpn5' "Starting softether bridge service."
+       
+       [ -d /var/softethervpn ] || mkdir -p -m 0775 /var/softethervpn
+       
+       [ -f /var/softethervpn/hamcore.se2 ] || ln -sf /usr/libexec/softethervpn/hamcore.se2 /var/softethervpn/
+       [ -f /var/softethervpn/lang.config  ] || ln -sf /usr/libexec/softethervpn/lang.config /var/softethervpn/
+       
+       [ -f /var/softethervpn/vpnbridge ] || ln -sf /usr/libexec/softethervpn/vpnbridge /var/softethervpn/
+       [ -f /var/softethervpn/vpn_bridge.config ] || ln -sf /usr/libexec/softethervpn/vpn_bridge.config /var/softethervpn/
+
+       procd_open_instance
+       procd_set_param env LANG=en_US.UTF-8
+    procd_set_param command /var/softethervpn/vpnbridge start --foreground
+    procd_set_param respawn
+    procd_close_instance
+}
+
+stop_service(){
+       logger -t 'softethervpn5' "Stopping softether bridge service."
+       
+       /var/softethervpn/vpnbridge stop
+}
diff --git a/net/softethervpn5/files/vpnclient.init b/net/softethervpn5/files/vpnclient.init
new file mode 100644 (file)
index 0000000..e4766f0
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh /etc/rc.common
+
+START=92
+USE_PROCD=1
+
+start_service(){
+       logger -t 'softethervpn5' "Starting softether client service."
+       
+       [ -d /var/softethervpn ] || mkdir -p -m 0775 /var/softethervpn
+       
+       [ -f /var/softethervpn/hamcore.se2 ] || ln -sf /usr/libexec/softethervpn/hamcore.se2 /var/softethervpn/
+       [ -f /var/softethervpn/lang.config  ] || ln -sf /usr/libexec/softethervpn/lang.config /var/softethervpn/
+       
+       [ -f /var/softethervpn/vpnclient ] || ln -sf /usr/libexec/softethervpn/vpnclient /var/softethervpn/
+       [ -f /var/softethervpn/vpn_client.config ] || ln -sf /usr/libexec/softethervpn/vpn_client.config /var/softethervpn/
+
+       procd_open_instance
+       procd_set_param env LANG=en_US.UTF-8
+    procd_set_param command /var/softethervpn/vpnclient start --foreground
+    procd_set_param respawn
+    procd_close_instance
+}
+
+stop_service(){
+       logger -t 'softethervpn5' "Stopping softether client service."
+       
+       /var/softethervpn/vpnclient stop
+}
diff --git a/net/softethervpn5/files/vpnserver.init b/net/softethervpn5/files/vpnserver.init
new file mode 100644 (file)
index 0000000..e6f73da
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh /etc/rc.common
+
+START=91
+USE_PROCD=1
+
+start_service(){
+       logger -t 'softethervpn5' "Starting softether vpnserver service." 
+       
+       [ -d /var/softethervpn ] || mkdir -p -m 0775 /var/softethervpn
+       
+       [ -f /var/softethervpn/hamcore.se2 ] || ln -sf /usr/libexec/softethervpn/hamcore.se2 /var/softethervpn/
+       [ -f /var/softethervpn/lang.config  ] || ln -sf /usr/libexec/softethervpn/lang.config /var/softethervpn/
+       
+       [ -f /var/softethervpn/vpnserver ] || ln -sf /usr/libexec/softethervpn/vpnserver /var/softethervpn/
+       [ -f /var/softethervpn/vpn_server.config ] || ln -sf /usr/libexec/softethervpn/vpn_server.config /var/softethervpn/
+
+       procd_open_instance
+       procd_set_param env LANG=en_US.UTF-8
+    procd_set_param command /var/softethervpn/vpnserver start --foreground
+    procd_set_param respawn
+    procd_close_instance
+}
+
+stop_service(){
+       logger -t 'softethervpn5' "Stopping softether vpnserver service."
+       
+       /var/softethervpn/vpnserver stop
+}
diff --git a/net/softethervpn5/patches/100-increase-cfg-save-intervall.patch b/net/softethervpn5/patches/100-increase-cfg-save-intervall.patch
new file mode 100644 (file)
index 0000000..5ce814a
--- /dev/null
@@ -0,0 +1,17 @@
+--- a/src/Cedar/Server.h       2018-07-21
++++ b/src/Cedar/Server.h       2018-07-23
+@@ -138,10 +138,10 @@ extern char *SERVER_CONFIG_FILE_NAME;
+ #define       SERVER_CONTROL_TCP_TIMEOUT              (60 * 1000)\r
+ #define       SERVER_FARM_CONTROL_INTERVAL    (10 * 1000)\r
\r
+-#define       SERVER_FILE_SAVE_INTERVAL_DEFAULT       (5 * 60 * 1000)\r
+-#define       SERVER_FILE_SAVE_INTERVAL_MIN           (5 * 1000)\r
+-#define       SERVER_FILE_SAVE_INTERVAL_MAX           (3600 * 1000)\r
+-#define       SERVER_FILE_SAVE_INTERVAL_USERMODE      (1 * 60 * 1000)\r
++#define       SERVER_FILE_SAVE_INTERVAL_DEFAULT       (24 * 60 * 60 * 1000)\r
++#define       SERVER_FILE_SAVE_INTERVAL_MIN           (5 * 60 * 1000)\r
++#define       SERVER_FILE_SAVE_INTERVAL_MAX           (7 * 24 * 60 * 60 * 1000)\r
++#define       SERVER_FILE_SAVE_INTERVAL_USERMODE      (5 * 60 * 1000)\r
\r
+ #define       SERVER_LICENSE_VIOLATION_SPAN   (SERVER_FARM_CONTROL_INTERVAL * 2)\r
\r
diff --git a/net/softethervpn5/patches/101-add-config-write-syslog.patch b/net/softethervpn5/patches/101-add-config-write-syslog.patch
new file mode 100644 (file)
index 0000000..8f2ede5
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/src/Cedar/Server.c       2018-07-25
++++ b/src/Cedar/Server.c       2018-07-26
+@@ -110,7 +110,7 @@
\r
+ // Server.c\r
+ // VPN Server module\r
+-\r
++#include <syslog.h>\r
+ #include "CedarPch.h"\r
\r
+ static SERVER *server = NULL;\r
+@@ -6601,6 +6601,10 @@ UINT SiWriteConfigurationFile(SERVER *s)
+       {\r
+               return 0;\r
+       }\r
++      \r
++      openlog("softethervpn-server", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_DAEMON);\r
++      syslog(LOG_NOTICE, "Writing vpn_server.config (AutoSaveConfigSpan set to < %d > seconds)", (s->AutoSaveConfigSpan / 1000));\r
++      closelog();\r
\r
+       Lock(s->SaveCfgLock);\r
+       {\r